﻿/*****************************************************************//**
 * @file   VAOneXMLAdaptorMaterialIsosolid.h
 * @brief  VAOne读写适配器向同性固体材料
 * 
 * @author xingxuanci
 * @date   2024-11-05
 *********************************************************************/
#ifndef VAOneXMLAdaptorMaterialIsosolid_H
#define VAOneXMLAdaptorMaterialIsosolid_H

#include "FITKVAOneXMLIOAPI.h"
#include "FITKAbstractVAOneXMLAdaptor.h"
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"

namespace IO
{
    /**
     * @brief   VAOne读写适配器向同性固体材料
     * @author  xingxuanci
     * @date    2024-11-05
     */
    class FITKVAOneXMLIOAPI VAOneXMLAdaptorMaterialIsosolid : public FITKAbstractVAOneXMLAdaptor
    {
        FITKCLASS(IO, VAOneXMLAdaptorMaterialIsosolid);
    public:

        /**
         * @brief   构造函数
         * @author  xingxuanci
         * @date    2024-11-05
         */
        explicit VAOneXMLAdaptorMaterialIsosolid()= default;
        /**
         * @brief   析构函数
         * @author  xingxuanci
         * @date    2024-11-05
         */
        ~VAOneXMLAdaptorMaterialIsosolid() = default;
        /**
         * @brief   适配器读数据
         * @return  是否执行成功
         * @author  xingxuanci
         * @date    2024-11-05
         */
        bool adaptR() override;
        /**
         * @brief   适配器写数据
         * @return  是否执行成功
         * @author  xingxuanci
         * @date    2024-11-05
         */
        bool adaptW() override;

    private:
        /**
         * @brief   读取向同性固体材料数据
         * @return  是否执行成功
         * @author  xingxuanci
         * @date    2024-11-05
         */
        bool readMaterialIsosolid();
        /**
         * @brief   写向同性固体材料数据
         * @return  是否执行成功
         * @author  xingxuanci
         * @date    2024-11-05
         */
        bool writeMaterialIsosolid();
};
    Register2FITKIOAdaptorFactory(VAOneXML, Acoustics::FITKAcousticsMaterialsIsosolid, VAOneXMLAdaptorMaterialIsosolid)
}

#endif // VAOneXMLAdaptorMaterialIsosolid_H
